package com.enjoyor.soa.traffic.frame.support.mybatis.mapper;

import java.util.List;
import java.util.Map;

import com.enjoyor.soa.traffic.util.pojo.Page;

@SuppressWarnings("rawtypes")
public abstract interface IBaseMapper<T> {

    public abstract String getSqlNamespace();

    public abstract String getSqlName(String sqlNamespace);

    public abstract void setSqlNamespace(String paramString);

    public abstract T selectById(String paramString);

    public abstract List<T> selectList(T paramT);

    public abstract List<T> selectAll();

    public abstract void insert(T paramT);

    public abstract void insertSelective(T paramT);

    public abstract void insertInBatch(List<T> paramList);

    public abstract int updateById(T paramT);

    public abstract int updateByIdSelective(T paramT);

    public abstract void updateInBatch(List<T> paramList);

    public abstract void updateInBatchSelective(List<T> paramList);

    public abstract int deleteById(String paramString);

    public abstract void deleteByIdInBatch(String[] paramArrayOfString);

    public abstract boolean checkFieldExists(String paramString1, String paramString2, String paramString3);

    // 分页相关
    public abstract Page selectPageInfo(Page page);

    public abstract Page selectPageInfo(String sqlId, Page page);

    public abstract Page selectPageInfo(String sqlId, String countSqlId, Page page);

    public abstract int selectTotalCount(String sqlId, Map<String, Object> map);

}
